home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 7 / FM Towns Free Software Collection 7.iso / data / nyan_e2 / nyane2kx.plt < prev    next >
Text File  |  1993-11-30  |  12KB  |  541 lines

  1. /*  NiftY serve Auto Navigator/Extension^2 (NYAN/E2) v1.04a */
  2. /* All Right Reserved, Copyright(c) モップ(NIFTY/PFF00570) 1991        */
  3. /* All Right Reserved, Copyright(c) すけるとん☆(NIFTY/NBE00503) 1991-1992 */
  4. /* All Right Reserved, Copyright(c) 氷面鏡(NIFTY/GEG01261) 1992-1993       */
  5. /* All Right Reserved, Copyright(c) KAN.(NIFTY/GEE00765) 1993        */
  6. /* All Right Reserved, Copyright(c) なため  (NIFTY/GFC02301) 1993        */
  7.  
  8. %memomax {500};    /* memo間で転送する最大行数 */
  9. var modem[40];
  10. var telno[30];
  11. var telty[10];
  12. var telno2[30];
  13. var telty2[10];
  14. var telno3[30];
  15. var telty3[10];
  16. var line[5];
  17. var id[10];
  18. var pass[10];
  19. var logd[30];
  20. var logc1[30];
  21. var logc2[8];
  22. var logh1[30];
  23. var logm1[30];
  24. var logb1[30];
  25. var logb2[8];
  26. var loga1[30];
  27. var loga2[8];
  28. var forum[500];
  29. var hp[500];
  30. var proc[5];
  31. var st[5];
  32. var Treq[10];
  33. var Mode[4];
  34. var Rmail[10];
  35. var Smail[10];
  36. var mail[3];
  37. var FmgrP[30];
  38. var FmgrF[15];
  39. var SetupF[15];
  40. var Itime[6];
  41. var MesType[3];
  42. var logl[30];
  43. var logf[30];
  44. var originalplt[4];
  45. var lib[600];
  46. var BILL[3];
  47. var Handle[500];
  48. var DivDisp[4];
  49. var InsHan[5];
  50. var LIST[5];
  51. var patio[200];
  52. var GUEST[3];
  53. var WTIME[6];
  54. var PRINTER[5];
  55. var rtn[700];
  56. var cugname[8];
  57. var tmpdir[30];
  58. var R[3];
  59. var G[3];
  60. var B[3];
  61. %mrgsuff {.ALL};
  62.  
  63. /**********   共通の処理ルーチン   **********/
  64. %Bell{
  65.     /*visibell({Yes});*/
  66.     display(@xc({07}));
  67. };
  68.  
  69. %setcdir2 {[dir]
  70.     %dir2 @case(@nochar(dir),
  71.         2,{im(dir|{\})},,{im(dir)});
  72.     setcdir(dir2);
  73. };
  74.  
  75. %getcdir2 {
  76.     case(@nochar(@getcdir),
  77.          3,{im(@getchar(@getcdir,1,2));
  78.     },,{im(@getcdir);
  79.     });
  80. };
  81.  
  82. %mkdir2{[path]
  83.     var drive[2];
  84.     var tardir[80];
  85.     var tarpath[80];
  86.     var ret[4];
  87.  
  88.     drive:=@head(path,{:});
  89.     tardir:=@body(path,{\});
  90.     case(@setcdir2(drive|{:}),
  91.     {Yes},{
  92.         tarpath:=drive|{:};
  93.         loop({
  94.             tarpath:=tarpath|{\}|@head(tardir,{\});
  95.             tardir:=@body(tardir,{\});
  96.             case(@setcdir2(tarpath),{No},{
  97.                 command({mkdir }|tarpath);
  98.             });
  99.             im(tardir<>{});
  100.         });
  101.         ret:={Yes};
  102.     },{No},{
  103.     /*    select({ 「}|drive|{」ドライブは使えません},5,,{  確認  });*/
  104.         ret:={No};
  105.     });
  106.     im(ret);
  107. };
  108.  
  109. %mkdir{[dir,name]
  110.     dispoff({Yes});
  111.     case(@setcdir2(dir),
  112.     {Yes}, {command({mkdir }|name);
  113.     },{No},{case(@mkdir2(dir),
  114.         {Yes},{
  115.             setcdir2(dir);
  116.             command({mkdir }|name);
  117.         },{No},{
  118.             select({ 「}|@head(dir,{:})|{」ドライブは使えません},
  119.                 30,{stop;
  120.             },{  もう一回やってみる },{mkdir(dir,name);
  121.             },{  自動処理をやめる },{stop;
  122.             },{  無視して先の処理をやる },{
  123.             });
  124.         });
  125.     });
  126.     dispoff({No});
  127. };
  128.  
  129. %CloseAllMemo{
  130.     case(@mcheck!=0,{Yes},{
  131.         loop({ mclose(2);
  132.                im(@mcheck!=0)
  133.         });
  134.     });
  135. };
  136.  
  137. %OutAllMemo{
  138.     case(@mcheck!=0,{Yes},{mclose(1)});
  139. };
  140.  
  141. %PFK{[pfkno]
  142.     case(pfkno>200,{Yes},{im(pfkno-100)},{No},{im(pfkno)});
  143. };
  144.  
  145. %check{[NUM]
  146.     case(@mcheck,0,{mopen(NUM)});
  147. };
  148.  
  149. %mergefile{[OldName,NewName]
  150.     var Buffer[80];
  151.     %MrgLog    {)merge(.$$$};
  152.     %path    @body(NewName,,{\});
  153.     %Newfile @tail(NewName,{\});
  154.     %Bakfile @head(Newfile,{.})|{.bak};
  155.     %BakName path|{\}|Bakfile;
  156.     %oldpath @getcdir2;
  157.     setcdir2(path);
  158.     dispoff({Yes});
  159.     case(@filechk(MrgLog),{Yes},{delfile(MrgLog)});
  160.     case(@filechk(Newfile),
  161.     {Yes}, {command({ren  }|Newfile|{ }|Bakfile);
  162.         command({copy }|Bakfile|{/B+}|OldName|{/B }|
  163.                 Newfile|{>}|MrgLog);
  164.         Buffer:=@read(MrgLog,3,1);
  165.     },{No},{command({copy }|OldName|{ }|Newfile|{>}|MrgLog);
  166.         Buffer:=@read(MrgLog,1,1);
  167.     });
  168.     footnote(@head(Buffer,{\n}));
  169.     delfile(MrgLog);
  170.     case(@getchar(Buffer,9,31)={1 個のファイルをコピーしました.},
  171.     {Yes},{    delfile(Bakfile);
  172.         delfile(OldName);
  173.     },{No},{delfile(Newfile);
  174.         command({ren }|Bakfile|{ }|Newfile);
  175.     });
  176.     setcdir2(oldpath);
  177.     dispoff({No});
  178. };
  179.  
  180. %ChkFname{[Fname]
  181.     var WkDrive[2];
  182.     var WkFname[80];
  183.     var ptr[2];
  184.     case(@getchar(Fname,2,1)={:},
  185.     {Yes},{ WkDrive:=@getchar(Fname,1,2); ptr:=3;
  186.     },   ,{ WkDrive:={}; ptr:=1;
  187.     });
  188.     WkFname:={};
  189.     loop({
  190.         case(@getchar(Fname,ptr,1),
  191.         {-},{WkFname:=WkFname|@im({@im({-})});
  192.         },,{ WkFname:=WkFname|@getchar(Fname,ptr,1);
  193.         });
  194.         ptr:=ptr+1;
  195.         im(ptr <= @nochar(Fname))
  196.     });
  197.     im(WkDrive|WkFname);
  198. };
  199.  
  200. %NyanInit{[dir]
  201.     case(@filechk(dir|{\MOPSET.PLP}),
  202.     {Yes}, {setcdir2(dir); #MOPSET.PLP;
  203.         case(PRINTER={},{Yes},{PRINTER:={fm}}); printer(PRINTER);
  204.         im({Yes});
  205.     },{No},{im({No});
  206.     });
  207. };
  208.  
  209. %allclear{
  210.     loop({ 
  211.         case(@mlast<>0,
  212.         {Yes},{    case(@mcheck,0,{mopen(@mlast,0,21,80,62)});
  213.             mclose(3);
  214.             im({Yes});
  215.         },{No},{im({No});
  216.         });
  217.     });
  218. };
  219.  
  220. %SelHandle{
  221.     var onehandle[40];
  222.     onehandle:={};
  223.     case(Handle<>{},{Yes},{
  224.         var handle[999];
  225.         var onetarget[10];
  226.         var mainhandle[40];
  227.         var target[10];
  228.         handle:=Handle;
  229.         target:=tardata;
  230.         mainhandle:={};
  231.         loop({
  232.             %onepair    @head(handle,{,});
  233.             onetarget:=@body(onepair,,{/});
  234.             onehandle:=@tail(onepair,{/});
  235.             case(onetarget={},{Yes},{mainhandle:=onehandle});
  236.             handle:=@body(handle,{,});
  237.             im(onetarget<>target && handle<>{});
  238.         });
  239.         case(onetarget=target,{No},{onehandle:=mainhandle});
  240.         /*case(onehandle,{A},{onehandle:={ハンドルA}}
  241.                 ,{B},{onehandle:={ハンドルB}}
  242.         );*/
  243.     });
  244.     im(onehandle);
  245. };
  246.  
  247. %YesNo{[MSG]
  248.     select(MSG,9999,{im({No});
  249.     },{ O K },{im({Yes});
  250.     },{ N G },{im({No});
  251.     });
  252. };
  253.  
  254. %SetOriginalplt{
  255.     setcdir2(current);
  256.     case(@filechk({ORIGINAL.PLT}),{Yes},{
  257.         select({ ユーザー定義パイロット(ORIGINAL.PLT)を使用しますか?},
  258.         999999,{
  259.         },{    使用する    },{originalplt:={Yes};
  260.         },{   使用しない   },{
  261.         });
  262.     });
  263. };
  264.  
  265. %ProcSet{
  266.     select({ 処理を選んでください.《SETUP FILE : }|SetupF|{》},
  267.         999999,{proc:={}},
  268.         {     受信処理のみ行う     },{proc:={Down}},
  269.         {     送信処理のみ行う     },{proc:={Up}},
  270.         {   受信・送信処理を行う   },{proc:={Both}}
  271.     );
  272.     SetOriginalplt;
  273. };
  274.  
  275. %ProcSet2{
  276.     select({ 処理を選んでください.《SETUP FILE : }|SetupF|{》},
  277.         999999,{proc:={}},
  278.         {     受信処理のみ行う     },{proc:={Down2}},
  279.         {     送信処理のみ行う     },{proc:={Up2}},
  280.         {   受信・送信処理を行う   },{proc:={Both2}}
  281.     );
  282.     SetOriginalplt;
  283. };
  284.  
  285. %Pause{
  286.     allclear;
  287.     chat({Yes});
  288.     loop({  footnote({再開                新メモ                        },{b});
  289.         loop({
  290.             waitx(9999);
  291.             im(@PFK(@xtype)<100);
  292.         });
  293.         case(@PFK(@xtype),
  294.           101,{ case(@mlast<>0,
  295.             {Yes},{    case(@YesNo({ memoを削除してよろしいですか?}),
  296.                 {Yes},{    im({No});
  297.                 },{No},{im({Yes});
  298.                 });
  299.             },{No},{im({No});
  300.             });
  301.         },106,{ case(@mlast<9,
  302.             {Yes},{    %new @mlast+1;
  303.                 CloseAllMemo;
  304.                 madd(new,{});
  305.                 mopen(new,0,21,639,459);
  306.             });
  307.             im({Yes});
  308.         },   ,{ im({Yes});
  309.         });
  310.     });
  311.     CloseAllMemo;
  312.     footnote({});
  313.     chat({No});
  314. };
  315.  
  316. %koukan    {[MSG]
  317.     im({ドライブを,受信}|MSG|{保存ディスクに交換してください});
  318. };
  319. %mm @koukan({メール});
  320. %mh @koukan({HP});
  321. %mc @koukan({会議室});
  322. %mb @koukan({掲示板});
  323. %mr {ドライブに,NYANのディスクが入っているか確認してください};
  324. var chg[3];
  325. %ChkDrv{[logdrv,MSG]
  326.     var a[3];
  327.     %b @getchar(logd,   1,2);
  328.     %c @getchar(current,1,2);
  329.     %d @getchar(logdrv, 1,2);
  330.     case(c=d && (d={A:} || d={B:}),
  331.     {Yes},{    display(c|MSG|{\n});
  332.         footnote({OKNG},{b});
  333.         loop({
  334.             waitx(1000);
  335.             case(@PFK(@xtype),
  336.               101,{a:={Yes}; chg:={Yes}; im({No});
  337.             },102,{a:={No}; im({No});
  338.             },   ,{a:={}; im({Yes});
  339.             });
  340.         });
  341.         im(a);
  342.         footnote({});
  343.     },{No},{im({Yes});
  344.     });
  345. };
  346.  
  347. %ErrNyan{
  348.     loop({
  349.         select({ NYAN/Eが見つかりません.確認してください},
  350.         99999,{im({Yes});
  351.         },{ O K },{im({No});
  352.         });
  353.     });
  354. };
  355.  
  356. %CallNyan{[nyan]
  357.     loop({
  358.         case(@setcdir2(current),
  359.          {Yes},{case(@filechk(@tail(nyan,{#})),
  360.             {Yes}, {nyan;im({No});
  361.             },{No},{ErrNyan;im({Yes});
  362.             });
  363.         },{No},{ErrNyan;im({Yes});
  364.         });
  365.     });
  366. };
  367.  
  368. %CallExtr{[path,file]
  369.     case(@setcdir2(path),
  370.     {Yes},{    case(@filechk(@tail(file,{#})),
  371.         {Yes}, {file;
  372.         },{No},{select(file|{が見つかりません},5);
  373.         });
  374.     },{No},{
  375.         select(path|{が見つかりません},5);
  376.     });
  377. };
  378.  
  379. /***********   MOPTERMの終了処理   **********/
  380. %stopmop{
  381.     select({ 本当に終了して良いですか?},99999,,
  382.       {  は  い  },{stopterm},
  383.       {  いいえ  })
  384. };
  385.  
  386. /**********   全体のメイン処理   **********/
  387.  
  388. %current @getcdir2;
  389. %AUTO    {CallNyan({#NYANE2_A.PLP})};
  390. %BUL    {CallNyan({#NYANE2_B.PLP})};
  391. %COMP    {CallNyan({#NYANE2_C.PLP})};
  392. %DIAL    {CallNyan({#NYANE2_D.PLP})};
  393. %EDIT    {CallNyan({#NYANE2_E.PLP})};
  394. %FILE    {CallNyan({#NYANE2_F.PLP})};
  395. %HEADER {CallNyan({#NYANE2_H.EXT})};
  396. %KERNEL          {#NYANE2KX.PLT};
  397. %LOGMRG    {CallNyan({#NYANE2_L.PLP})};
  398. %MANUAL    {CallNyan({#NYANE2_M.PLP})};
  399. %SEMI    {CallNyan({#NYANE2_N.PLP})};
  400. %NAPDSP    {CallNyan({#NYANE2_P.PLP})};
  401. %SETUP    {CallNyan({#NYANE2_S.PLP})};
  402. %TITLE    {CallNyan({#NYANE2_T.PLP})};
  403. %UPTEXT    {CallNyan({#NYANE2_U.PLP})};
  404. %VIEW    {CallNyan({#NYANE2_V.EXT})};
  405. %WAIT    {CallNyan({#NYANE2_W.PLP})};
  406. %MKBMAIL{CallNyan({#NYANE2MB.PLP})};
  407. %SETLIB    {CallNyan({#NYANE2SL.PLP})};
  408. %DOWNLIB{CallNyan({#NYANE2DL.PLP})};
  409. %ARRANGE{CallNyan({#NYANE2AR.PLP})};
  410. %RESPONCE{CallNyan({#NYANE2RE.PLP})};
  411. %GETPROF{CallNyan({#NYANE2GP.PLP})};
  412. %SETPROF{CallNyan({#NYANE2SP.PLP})};
  413. %UPTEXT2{CallNyan({#NYANE2U2.PLP})};
  414. %DELTXT    {CallNyan({#NYANE2DT.PLP})};
  415. %MOVE    {CallNyan({#MOVE.PLT})};
  416. %READ    {CallNyan({#NYANE2RD.PLP})};
  417. %EXPIRE    {CallNyan({#NYANE2EX.PLP})};
  418.  
  419. footnote({});
  420. setoak({J});
  421. click({No});
  422. nattou({No});
  423.  
  424. allclear;
  425. setpf(12,{footnote({ Loading..});}
  426.     |{setcdir(}|@xc({7b})|@getcdir|@xc({7d})|{);}|KERNEL);
  427.  
  428. logd:={B:};
  429. logl:={B:};
  430. logf:={B:\DOWN};
  431. case(@NyanInit(current),{No},{#SET_NYAN.PLT});
  432. case(Itime={},{Yes},{Itime:=999999});
  433. case(R,{},{R:=50}); case(G,{},{G:=80}); case(B,{},{B:=50});
  434. backclr(R,G,B);
  435.  
  436. %WaitTerm{[OPT]
  437.     ProcSet;
  438.     case(proc<>{},{Yes},{
  439.         case(pass={},{Yes},{
  440.             pass:=@input({ パスワードを入力してください});
  441.         });
  442.         case(pass<>{},{Yes},{
  443.             WAIT;
  444.             case(COND,{Yes},{
  445.                 Mode:={AUTO}; AUTO;
  446.                 OPT;
  447.             });
  448.         });
  449.     });
  450.     im({No});
  451. };
  452.  
  453. %COM{
  454.     var COND[4];
  455.     originalplt:={No};
  456.     loop({
  457.     setcdir2(logd);
  458.     %remain @diskrem/1024;
  459.     select({ 処理を選んでください.《LogDisk空き容量 : }|remain|{[KB]》},
  460.     999999,{im({No});
  461.     },{      自動通信を行います        },{
  462.         ProcSet;
  463.         case(proc<>{},{Yes},{ Mode:={OPER}; AUTO });
  464.         im({No});
  465.     },{      指定時刻に自動通信を行います      },{
  466.         WaitTerm({});
  467.     },{ 指定時刻に自動通信をし,MOPTERMを終了  },{
  468.         WaitTerm({
  469.             dispoff({Yes});
  470.             command({POFF});
  471.             stopterm;
  472.         });
  473.     },{        半自動通信を行います         },{
  474.         proc:={Semi};    Mode:={OPER};    AUTO;    im({No});
  475.     },{        自動通信後に半自動通信          },{
  476.         ProcSet2;
  477.         case(proc<>{},{Yes},{ Mode:={OPER}; AUTO });
  478.         im({No});
  479.     },{         指定発言のみ取得する           },{
  480.         proc:={Read};    Mode:={OPER};    AUTO;    im({No});
  481.     },{         メインメニューへ戻る           },{
  482.         im({No});
  483.     });
  484.     });
  485. };
  486.  
  487. %UTY{
  488.     loop({
  489.     select({ 処理を選んでください.《SETUP FILE : }|SetupF|{》},
  490.     999999,{ im({No});
  491.     },{        ログのマージを行います        },{
  492.         case(@YesNo({ ログのマージを行います. いいですか?}),
  493.         {Yes},{LOGMRG; im({No});
  494.         },{No},{
  495.         });
  496.     },{  保存ログの圧縮/削除処理を行います  },{COMP; im({No});
  497.     },{   ファイルマネージャを呼び出します   },{FILE; im({No});
  498.     },{   NAPLPSデータの表示をします   },{NAPDSP; im({No});
  499.     },{         文書の編集を行います         },{%kind {edi};  ARRANGE;
  500.                               im({No});
  501.     },{         メインメニューへ戻る         },{im({No});
  502.     });
  503.     });
  504. };
  505.  
  506. %EXTERNAL{[P,F];
  507.     case(P<>{} && F<>{},
  508.     {Yes},{    CallExtr(P,F);
  509.     },{No},{footnote({ 実行するパイロットを選択してください});
  510.         %f @filesel({PLT});
  511.         footnote({});
  512.         case(f<>{},{Yes},{CallExtr(@getcdir,{#}|f)});
  513.     });
  514. };
  515.  
  516. %END{
  517.     loop({
  518.     select({ 処理を選んでください.《SETUP FILE : }|SetupF|{》},
  519.     999999,{im({No});
  520.     },{  自動処理を終了します(PF12で再起動)  },{allclear; stop;
  521.     },{       MOPTERMを終了します     },{stopmop;
  522.     },{         メインメニューへ戻る         },{im({No});
  523.     });
  524.     });
  525. };
  526.  
  527. loop({
  528.     select({ 処理を選んでください.《SETUP FILE : }|SetupF|{》},
  529.     999999,{ im({Yes});
  530.     },{  通  信  },{ COM;
  531.     },{ 受信文書 },{ VIEW;
  532.     },{送受信設定},{ EDIT;
  533.     },{  補  助  },{ UTY;
  534.     },{  設  定  },{ SETUP;
  535.     },{ 一時停止 },{ Pause;
  536.     },{ 外部呼出 },{ EXTERNAL(FmgrP,FmgrF);
  537.     },{  終  了  },{ END;
  538.     });
  539.     im({Yes});
  540. });
  541.